#pragma once
#include<iostream>
#include<vector>
#include<unistd.h>

using namespace std;
void PrintLOG()
{
    cout<<"PID: "<<getpid()<<" 正在执行打印日志的任务..."<<endl;

}

void InsertSQL()
{
  cout << "PID: " << getpid() << " 正在执行数据库插入的任务…" << endl;
}

void NetRequst()
{
  cout << "PID: " << getpid() << " 正在执行网络请求的任务…" << endl;
}

typedef void(*func_t)();

//任务池
class TaskPools
{
public:
    TaskPools()
    {
        //装载任务
        _vft.push_back(PrintLOG);
        _vft.push_back(InsertSQL);
        _vft.push_back(NetRequst);

    }
    ~TaskPools()
    {

    }

    void Execute(int num)
    {
        //根据编号，执行任务
        if(num < 0 || num> _vft.size())
        {
            cout<<" 没有这个任务 "<<endl;
        }
        else
          _vft[num]();
    }
private:
    vector<func_t> _vft; //可用任务表
};